マルチAZ環境でECS(Fargate)にEFSをマウントさせる場合に気を付けること
こんにちは、シマです。先日、ECS(Fargate)でEFSをマウントさせて使う記事を書きました。
今回はその構成で気を付けることについて記載します。
結論
いきなり結論ですが、FargateからEFSを利用する際にはコンテナがあるサブネットにEFSマウントターゲットを配置する必要があります。
発生しうるケースとしては、EFSのコストを下げるために1ゾーンストレージクラスを選択した場合等が考えられます。
どんなエラーになるか
試しに前回記事の構成から、EFSを1ゾーンストレージクラスとしてコンテナを作成してみました。EFSマウントターゲットがあるサブネットに配置されるコンテナは問題なく実行中へ遷移します。
EFSマウントターゲットがないサブネットに配置されたコンテナはエラーログが出力あれ、コンテナは停止してしまいます。
ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: stderr: Failed to resolve "fs-xxxxx.efs.ap-northeast-1.amazonaws.com" - > check that your file system ID is correct, and ensure that the VPC has an EFS mount target for this file system ID. See https://docs.aws.amazon.com/console/efs/mount-dns-name for more detail. Attempting to lookup mount target ip address using botocore. Failed to import necessary dependency botocore, please install botocore first. : unsuccessful EFS utils command execution; code: 1
ログの内容からは推測しにくいですが、上記のようなログが出力された場合は一度EFSのマウントターゲットが問題なく構成されているかご確認頂いた方が良いですね。
最後に
今回はマルチAZ環境でFargateにEFSをマウントさせる場合に気を付けることについて記載しました。
本記事がどなたかのお役に立てれば幸いです。